home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.util.Enumeration;
- import javax.swing.CellRendererPane;
- import javax.swing.JComponent;
- import javax.swing.LookAndFeel;
- import javax.swing.event.MouseInputListener;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.TableHeaderUI;
- import javax.swing.table.JTableHeader;
- import javax.swing.table.TableCellRenderer;
- import javax.swing.table.TableColumn;
- import javax.swing.table.TableColumnModel;
-
- public class BasicTableHeaderUI extends TableHeaderUI {
- protected JTableHeader header;
- protected CellRendererPane rendererPane;
- protected MouseInputListener mouseInputListener;
-
- private Dimension createHeaderSize(long var1) {
- TableColumnModel var3 = this.header.getColumnModel();
- var1 += (long)(var3.getColumnMargin() * var3.getColumnCount());
- if (var1 > 2147483647L) {
- var1 = 2147483647L;
- }
-
- return new Dimension((int)var1, this.getHeaderHeight());
- }
-
- protected MouseInputListener createMouseInputListener() {
- return new MouseInputHandler(this);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicTableHeaderUI();
- }
-
- private int getHeaderHeight() {
- int var1 = 0;
- TableColumnModel var2 = this.header.getColumnModel();
-
- for(int var3 = 0; var3 < var2.getColumnCount(); ++var3) {
- TableColumn var4 = var2.getColumn(var3);
- TableCellRenderer var5 = var4.getHeaderRenderer();
- Component var6 = var5.getTableCellRendererComponent(this.header.getTable(), var4.getHeaderValue(), false, false, -1, var3);
- var1 = Math.max(var1, var6.getPreferredSize().height);
- }
-
- return var1;
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- long var2 = 0L;
-
- TableColumn var5;
- for(Enumeration var4 = this.header.getColumnModel().getColumns(); var4.hasMoreElements(); var2 += (long)var5.getMaxWidth()) {
- var5 = (TableColumn)var4.nextElement();
- }
-
- return this.createHeaderSize(var2);
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- long var2 = 0L;
-
- TableColumn var5;
- for(Enumeration var4 = this.header.getColumnModel().getColumns(); var4.hasMoreElements(); var2 += (long)var5.getMinWidth()) {
- var5 = (TableColumn)var4.nextElement();
- }
-
- return this.createHeaderSize(var2);
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- long var2 = 0L;
-
- TableColumn var5;
- for(Enumeration var4 = this.header.getColumnModel().getColumns(); var4.hasMoreElements(); var2 += (long)var5.getPreferredWidth()) {
- var5 = (TableColumn)var4.nextElement();
- }
-
- return this.createHeaderSize(var2);
- }
-
- protected void installDefaults() {
- LookAndFeel.installColorsAndFont(this.header, "TableHeader.background", "TableHeader.foreground", "TableHeader.font");
- }
-
- protected void installKeyboardActions() {
- }
-
- protected void installListeners() {
- this.mouseInputListener = this.createMouseInputListener();
- this.header.addMouseListener(this.mouseInputListener);
- this.header.addMouseMotionListener(this.mouseInputListener);
- }
-
- public void installUI(JComponent var1) {
- this.header = (JTableHeader)var1;
- this.rendererPane = new CellRendererPane();
- this.header.add(this.rendererPane);
- this.installDefaults();
- this.installListeners();
- this.installKeyboardActions();
- }
-
- public void paint(Graphics var1, JComponent var2) {
- Rectangle var3 = var1.getClipBounds();
- if (this.header.getColumnModel() != null) {
- int var4 = 0;
- boolean var5 = false;
- int var6 = -1;
- Rectangle var7 = null;
- Dimension var8 = this.header.getSize();
- Rectangle var9 = new Rectangle(0, 0, var8.width, var8.height);
-
- for(Enumeration var10 = this.header.getColumnModel().getColumns(); var10.hasMoreElements(); ++var4) {
- TableColumn var11 = (TableColumn)var10.nextElement();
- int var12 = this.header.getColumnModel().getColumnMargin();
- var9.width = var11.getWidth() + var12;
- if (var9.intersects(var3)) {
- var5 = true;
- if (var11 != this.header.getDraggedColumn()) {
- this.paintCell(var1, var9, var4);
- } else {
- var1.setColor(this.header.getParent().getBackground());
- var1.fillRect(var9.x, var9.y, var9.width, var9.height);
- var7 = new Rectangle(var9);
- var6 = var4;
- }
- } else if (var5) {
- break;
- }
-
- var9.x += var9.width;
- }
-
- TableColumn var13 = this.header.getDraggedColumn();
- if (var13 != null && var7 != null) {
- var7.x += this.header.getDraggedDistance();
- this.paintCell(var1, var7, var6);
- }
-
- }
- }
-
- private void paintCell(Graphics var1, Rectangle var2, int var3) {
- TableColumn var4 = this.header.getColumnModel().getColumn(var3);
- TableCellRenderer var5 = var4.getHeaderRenderer();
- Component var6 = var5.getTableCellRendererComponent(this.header.getTable(), var4.getHeaderValue(), false, false, -1, var3);
- this.rendererPane.add(var6);
- this.rendererPane.paintComponent(var1, var6, this.header, var2.x, var2.y, var2.width, var2.height, true);
- }
-
- protected void uninstallDefaults() {
- }
-
- protected void uninstallKeyboardActions() {
- }
-
- protected void uninstallListeners() {
- this.header.removeMouseListener(this.mouseInputListener);
- this.header.removeMouseMotionListener(this.mouseInputListener);
- this.mouseInputListener = null;
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallDefaults();
- this.uninstallListeners();
- this.uninstallKeyboardActions();
- this.header.remove(this.rendererPane);
- this.rendererPane = null;
- this.header = null;
- }
- }
-